﻿using RBAC.MaHaiBo.Entity.Traceability;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace RBAC.MaHaiBo.Service.TraceabilityService
{
    public interface IPlotInfoService
    {
        /// <summary>
        /// 添加产品检验报告
        /// </summary>
        /// <param name="tracingId">溯源编号</param>
        /// <param name="lot">批次</param>
        /// <param name="surfacePlot">图片</param>
        /// <returns>返回受影响行数</returns>
        Task<int> AddsurfacePlot(int tracingId, string? lot, string? surfacePlot);

        /// <summary>
        /// 产品检验报告
        /// </summary>
        /// <param name="tracingId">溯源编号</param>
        /// <param name="lot">批次</param>
        /// <returns>返回数据列表</returns>
        Task<List<PlotInfo>> Tracinglist(int tracingId, string? lot);
        /// <summary>
        /// 添加动态证
        /// </summary>
        /// <param name="farmid">养殖编号</param>
        /// <param name="lot">批次</param>
        /// <param name="surfacePlot">图片</param>
        /// <returns></returns>
        Task<int> AddHygienePlot(int farmid, string? lot, string? surfacePlot);
        /// <summary>
        /// 动态证
        /// </summary>
        /// <param name="farmid">养殖编号</param>
        /// <param name="lot">批次</param>
        /// <returns>返回数据列表</returns>
        Task<List<PlotInfo>> HygienePlotInfolist(int farmid, string? lot);
        /// <summary>
        /// 添加企业
        /// </summary>
        /// <param name="firmid">企业编号</param>
        /// <param name="lot">批次</param>
        /// <param name="surfacePlot">图片</param>
        /// <returns></returns>
        Task<int> AddFirmPlot(int firmid, string? lot, string? surfacePlot);
        /// <summary>
        /// 企业图片
        /// </summary>
        /// <param name="firmid">企业编号</param>
        /// <param name="lot">批次</param>
        /// <returns>返回数据列表</returns>
        Task<List<PlotInfo>> FirmPlotInfolist(int firmid, string? lot);

        /// <summary>
        /// 添加相关资料
        /// </summary>
        /// <param name="slaughterid">屠宰id</param>
        /// <param name="lot">批次</param>
        /// <param name="surfacePlot">图片</param>
        /// <returns></returns>
        Task<int> AddSlaughterPlotInfolist(int slaughterid, string? lot, string? surfacePlot);

        /// <summary>
        /// 相关资料图片
        /// </summary>
        /// <param name="slaughterid">屠宰id</param>
        /// <param name="lot">批次</param>
        /// <returns>返回数据集合</returns>
        Task<List<PlotInfo>> SlaughterPlotInfolist(int slaughterid, string? lot);

        /// <summary>
        /// 添加深加工相关资料
        /// </summary>
        /// <param name="slaughterid">深加工id</param>
        /// <param name="lot">批次</param>
        /// <param name="surfacePlot">图片</param>
        /// <returns></returns>
        Task<int> AddDeepProcessingPlotInfolist(int Deepprocessingid, string? lot, string? surfacePlot);

        /// <summary>
        /// 深加工相关资料图片
        /// </summary>
        /// <param name="slaughterid">深加工id</param>
        /// <param name="lot">批次</param>
        /// <returns>返回数据集合</returns>
        Task<List<PlotInfo>> DeepProcessingPlotInfolist(int Deepprocessingid, string? lot);

        /// <summary>
        /// 添加原材相关资料
        /// </summary>
        /// <param name="RawMaterialid">原材id</param>
        /// <param name="lot">批次</param>
        /// <param name="surfacePlot">图片</param>
        /// <returns></returns>
        Task<int> AddRawMaterialPlotInfolist(int RawMaterialid, string? lot, string? surfacePlot);

        /// <summary>
        /// 原材相关资料图片
        /// </summary>
        /// <param name="RawMaterialid">原材id</param>
        /// <param name="lot">批次</param>
        /// <returns>返回数据集合</returns>
        Task<List<PlotInfo>> RawMaterialPlotInfolist(int RawMaterialid, string? lot);

        /// <summary>
        /// 添加辅料相关资料
        /// </summary>
        /// <param name="Accessoriesid">辅料id</param>
        /// <param name="lot">批次</param>
        /// <param name="surfacePlot">图片</param>
        /// <returns></returns>
        Task<int> AddAccessoriesPlotInfolist(int Accessoriesid, string? lot, string? surfacePlot);

        /// <summary>
        /// 辅料相关资料图片
        /// </summary>
        /// <param name="Accessoriesid">辅料id</param>
        /// <param name="lot">批次</param>
        /// <returns>返回数据集合</returns>
        Task<List<PlotInfo>> AccessoriesPlotInfolist(int Accessoriesid, string? lot);

        /// <summary>
        /// 添加添加剂相关资料
        /// </summary>
        /// <param name="Additiveid">添加剂id</param>
        /// <param name="lot">批次</param>
        /// <param name="surfacePlot">图片</param>
        /// <returns></returns>
        Task<int> AddAdditivePlotInfolist(int Additiveid, string? lot, string? surfacePlot);

        /// <summary>
        /// 添加剂相关资料图片
        /// </summary>
        /// <param name="Additiveid">添加剂id</param>
        /// <param name="lot">批次</param>
        /// <returns>返回数据集合</returns>
        Task<List<PlotInfo>> AdditivePlotInfolist(int Additiveid, string? lot);
        /// <summary>
        /// 包材添加相关资料
        /// </summary>
        /// <param name="PackingMaterialsid">包材id</param>
        /// <param name="lot">批次</param>
        /// <param name="surfacePlot">图片</param>
        /// <returns></returns>
        Task<int> PackingMaterialsPlotInfolist(int PackingMaterialsid, string? lot, string? surfacePlot);

        /// <summary>
        /// 包才相关资料图片
        /// </summary>
        /// <param name="PackingMaterialsid">包才id</param>
        /// <param name="lot">批次</param>
        /// <returns>返回数据集合</returns>
        Task<List<PlotInfo>> PackingMaterialsPlotInfolist(int PackingMaterialsid, string? lot);


        /// <summary>
        /// 删除图片
        /// </summary>
        /// <param name="Pid">图片编号</param>
        /// <returns>返回受影响行数</returns>
        Task<int> DelPlotInfo(int Pid);





    }
}
